C++ 类中protected的通俗解释 您所在的位置:网站首页 c++ class 定义 C++ 类中protected的通俗解释

C++ 类中protected的通俗解释

2023-08-12 11:04| 来源: 网络整理| 查看: 265

举个例子,假如我们要定义人这个类,其中每个人都有三种财富:养老金,子女金,生活金。 首先是生活金,每个人的生活金其实都是可以对外公开的,所以应该可以设置为public,但是遗产和养老金是不对外公布的。 那么问题来了,遗产和养老金是不是都应该设置为private呢? 其实不然,养老金不能由孩纸瞎改,但是遗产这个这个值孩纸应该是有权利改动的,比如孩子有权将遗产设置为0(放弃遗产), 所以在子类中应该是可以触及到这个变量,但是private是子类也无法触及的,所以就整出一个protected属性来实现这个操作。 所以感觉protected完全是为了继承设置的一种属性。当你觉得某个值是其他开发者需要使用的,则可以设置为protected, 但是不推荐用protected,这个值虽然是当下类对象无法访问的,但是如果想访问,自己写个继承就个可以达到这个目的 (在继承类的public中写个函数调用父类的protected并显示出来,则子类对象就可不修改父类定义的情况下输出父类protected的值)。

 在设计基类时,对于某些成员变量基类设计者A也不知道其他人会怎么使用,假如A一开始将成员变量a定义为private,当其他人过来继承时需要一个a++的操作,那么他就不得不去找A让他改基类的定义,不然在继承类中无法直接操作基类的私有成员。过了一会儿又有人需要一个a--操作,那么A又要改基类定义添加一个a--的public成员函数,当然后面还有各种需求。。所以A很无奈,于是就出现了protect,对于继承者而言,你们随便操作不用再来麻烦我。这样即保证了数据的私有性(不能被对象获取),同时基类设计者也不用来回改基类定义来满足各种继承者



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有